// 封装分类数据业务相关代码
import { getCategoryAPI } from "@/apis/category";
import { ref, onMounted } from "vue";
import { useRoute } from "vue-router";
import { onBeforeRouteUpdate } from "vue-router";

export function useCategory() {
  const categoryData = ref({});
  const route = useRoute();
  // 如果没传id，则id是从路径变量 /category/:id 中获取的
  const getCategory = async (id = route.params.id) => {
    // route.params.id 是从路径变量 /category/:id 中获取的，语义清晰；
    // route.query.id 是从 URL 的查询参数 ?id=... 中获取的，适合灵活传参。
    const res = await getCategoryAPI(id);
    categoryData.value = res.result;
  };
  onMounted(() => getCategory());

  // 目标：路由参数变化的时候 可以把分类数据接口重新发送
  onBeforeRouteUpdate((to) => {
    // console.log("路由变化了！");
    // console.log(to);
    getCategory(to.params.id);
  });
  return {
    categoryData,
  };
}
